查看原文
其他

Oracle11GR2 RAC ASM for AIX6.1.4 完全安装手册

目录

1 主机规划

1.1 硬件环境

1.2 软件环境

1.3 RAC拓朴图

1.4 网络规划

1.4.1 IP地址要求

1.4.2 DNS服务器(可选)

1.5 安装目录规划

1.6 存储规划

1.6.1 grid、ASM安装目录

1.6.2 Clusterware安装目录

1.6.3 OCR、VOTE存储规划

1.6.4 数据库数据文件存储规划

2 安装准备

2.1 系统硬件环境检查

2.1.1 Oracle11gR2 RAC最低安装要求:

2.1.2 验证方法:

2.1.2.1 确认内存大小

2.1.2.2 确认SWAP空间,最少4G

2.1.2.3 确认/tmp大于1.5GB和/oracle目录空间15GB

2.1.2.4 确认系统结构

2.1.2.5 确认系统CPU个数和主频

2.2 安装操作系统软件包

2.2.1 安装FILESETS

2.2.2 安装PATCHES

2.3 配置IP地址

2.4 修改/etc/hosts文件

2.5 文件系统准备

2.5.1 方法1:使用命令创建

2.5.2 方法2:使用smit创建

2.6 调整系统参数

2.6.1 打开异步IO

2.6.2 调整虚拟内存管理

2.6.3 调整maxuproc(系统最大进程数)和ncargs(系统块大小)参数

2.6.4 调整SHELL限制

2.6.5 确认网络配置参数

2.7 创建用户、组

2.7.1 要求

2.7.2 创建命令

2.7.3 修改用户属性

2.7.3.1 grid用户

2.7.3.2 oracle用户

2.7.3.3 root用户

2.8 用户环境变量设置

2.8.1 grid用户

2.8.2 oracle用户

2.9 用户shell限制

2.10 创建安装目录并修改权限

2.11 SSH信任关系设置(可选)

2.11.1 首先在两台机器上安装好OpenSSH软件;

2.11.2 然后在grid安装中选择自动配置SSH双机信任关系

2.11.2.1 方法1 

2.11.2.2 方法2 

2.12 配置磁盘设备 

2.12.1 设置磁盘属性 

2.12.2 修改用于数据库存储的PV的属主 

2.12.3 修改用于数据库存储的PV的权限 

2.12.4 清除PVID 

2.13 配置NTP服务(可选) 

3 安装Grid 

3.1 Grid安装前检查 

3.2 执行rootpre.sh 

3.3 安装grid 

3.4 Clusterware安装校验 

4 安装Database 

5 创建ASM磁盘组 

6 DBCA创建数据库 

7 安装完成后 

7.1 备份root.sh 

7.2 重新编译全部PL/SQL modules 

7.3 备份spfile文件 

7.4 RAC集群系统维护命令 

7.5 启动和关闭集群系统命令 

7.5.1 启动集群件和集群数据库 

7.5.2 关闭RAC集群数据库和集群件 


1 主机规划

1.1 硬件环境

服务器:两台IBM P630 16C(Power6 CPU)/32GB;

存储:一台DS4000存储;

1.2 软件环境

数据库:

aix.ppc64_11gR2_database_1of2.zip

aix.ppc64_11gR2_database_2of2.zip、

集群件(10G中的clusterware):

aix.ppc64_11gR2_grid.zip这三个包

操作系统:

AIX6.1

原来版本是6100-01

升级后为:6100-04-01-0944

注意:解压时aix.ppc64_11gR2_database_1of2.zip、aix.ppc64_11gR2_database_2of2.zip这两个包要解到同一个目录下,aix.ppc64_11gR2_grid.zip包解到另一个不同的目录下。 

1.3 RAC拓朴图(略)

1.4 网络规划

1.4.1 IP地址要求

 每个节点一个public IP

 每个节点一个public VIP

 每个节点一个private IP

 一个用于集群的SCAN名称和一到三个和public IP同网段的IP,本处用一个

 public IP,VIP和private IP写入/etc/hosts文件,scan名注册到DNS

 配置DNS搜索域和解析顺序

Oracle 11gR2 RAC中对网络的要求与10g稍有些不同,在Oracle 11gR2 RAC中引入了SCAN的概念。SCAN全称是Single Client Access Name ,它是Oracle RAC 11gR2版本的一个新特性。它为需要访问Oracle集群数据的客户端提供一个简单名字。它的好处是如果你使用SCAN当你增长或踢除集群中的节点时客户端不需要做任何改变,这一点在三层架构应用系统中(数据库-应用服务器-客户机)优势明显。使用单个名字去访问集群允计客户端使用EZConnect 客户端和简单JDBC thin URL去访问运行在集群中的任何数据库,而不用管在集群中那个或那些服务器(或叫实例)是Active的。

配置好固定IP(public),ORACLE的私有IP(priv),和VIP,尤其要注意的是:两台机器需配置对应关系一致的IP与网卡。如:

注:SCAN IP,有的资料说是1-3个,而有的资料说是必须要3个,未证实。

上规划表中7、8项二选一即可,如果没有DNS服务器,也可以使用/etc/hosts解析scan单IP

ASM规划

若是需要捆绑网卡做心跳,可以使用:

#smit etherchannel

1.4.2 DNS服务器(可选)

前面说到在Oracle 11gR2 RAC中引入了SCAN的概念,而ORACLE推荐使用DNS解析的方法来实现SCAN,这就要求网络中有一台DNS服务器用来解析SCAN地址。

如果你网络中没有专用的DNS服务器,那么也可以用现有的数据库服务器兼作DNS服务器,但是不推荐这样做,因为一旦这台机器当机了,DNS就无法解析,可以导致监听的异步常。

在AIX中搭建DNS服务器的方法在后文中将讲到。

这里使用/etc/hosts来解析scan

1.5 安装目录规划

安装目录规划原则:建立/u01文件系统用来安装grid、datbase程序。程序都安装在/u01/app下面,对于grid与database分别建立不同的目录,分配不同的权限。其中grid的ORACLE_BASE和ORACLE_HOME建议安装在不同的目录下,具体规划如下:

新建30G lv:oralv   

新建文件系统,挂载点:/u01

grid base目录:/u01/app/grid     #grid用户的ORACLE_BASE

grid asm安装目录:/u01/app/11.2/grid   #grid用户的ORACLE_HOME,也即是安装时的software location

Oracle base目录:/u01/app/oracle      #oracle用户的ORACLE_BASE

注:此规划为后来总结,本实验中与此略有出入。Grid用户的ORACLE_BASE、ORACLE_HOME都需要手工创建。Oracle用户只创建ORACLE_BASE目录即可。

1.6 存储规划

1.6.1 grid、ASM安装目录

在Oracle 11gR2中grid和ASM是安装在同一目录下的,我们将grid和ASM安装在/u01/grid目录下,为JFS2文件系统,大小建立为30GB以上。本次示例25G

1.6.2 Clusterware安装目录

我们将Clusterware安装在/u01/db目录下。

1.6.3 OCR、VOTE存储规划

在我们的方案中规划如下:

OCR hdisk6    容量:5G

VOTE hdisk5   容量:4G

DATA hdisk2、4  容量:50G、40G

1.6.4 数据库数据文件存储规划

规划使用2个50GB和40G的阵列盘用来存放数据库数据文件文件,这2块盘在ASM中做成external磁盘组。


2 安装准备

2.1 系统硬件环境检查

2.1.1 Oracle11gR2 RAC最低安装要求:

内存:

安装grid infrastructure最少需要1.5GB的内存,

安装grid infrastructure和RAC最少需要2.5GB的内存

swap:最少需要4GB,有的资料介绍最少1.5G,不过安装环境检查时显示需要4G。

temp:推荐10G,可以将安装文件上传至/tmp目录下,最少1GB

安装目录:grid infrastructure+ASM+Clusterware最少需要12GB

操作系统:

AIX 6.1 TL 01 SP1 ("6100-01-01), 64-bit kernel

2.1.2 验证方法:

2.1.2.1 确认内存大小

# lsattr -El sys0 -a realmem

realmem 4194304 Amount of usable physical memory in Kbytes False

2.1.2.2 确认SWAP空间,最少4G。

# lsps -a

若不够4G,需要增加PPS数。本系统一个PPS为128M,所以增加20个,使swap达到4G。PPS大小可以通过lsvg rootvg查看。

# chps -s 20 hd6

# lsps -a

2.1.2.3 确认/tmp大于1.5GB和/oracle目录空间15GB

推荐oracle安装目录在25GB左右,grid infrastructure+ASM安装在/oracle/grid目录下,其中Oracle11g Clusterware安装在/oracle/db目录下.

chfs –a size=5G /tmp

2.1.2.4 确认系统结构

# getconf HARDWARE_BITMODE

64

2.1.2.5 确认系统CPU个数和主频:

# lsdev -C | grep proc

proc0      Available 00-00         Processor

proc1      Available 00-01         Processor

# lsattr -El proc0

2.2 安装操作系统软件包

2.2.1 安装FILESETS

AIX 6.1需要安装如下软件包:

bos.adt.base

bos.adt.lib

bos.adt.libm

bos.perf.libperfstat 6.1.2.1 or later

bos.perf.perfstat

bos.perf.proctools

rsct.basic.rte

rsct.compat.clients.rte

xlC.aix61.rte 10.1.0.0 (or later)

AIX 5.3需要安装如下软件包:

bos.adt.base

bos.adt.lib

bos.adt.libm

bos.perf.libperfstat 5.3.9.0 or later

bos.perf.perfstat

bos.perf.proctools

rsct.basic.rte

rsct.compat.clients.rte

xlC.aix50.rte 10.1.0.0 (or later)

以上filesets安装与否可以用命令lslpp -l进行检查确认。默认安装是不全的,需要手工进行添加。同时系统盘的版本与上述也有差异,安装尝试。

2.2.2 安装PATCHES

AIX版本要求如下

AIX 5L V5.3 TL 09 SP1 ("5300-09-01"), 64 bit kernel或以上版本

AIX 6.1 TL 02 SP1 ("6100-02-01), 64-bit kernel或以上版本

检查方法:

# oslevel -r

6100-03

其它单个补丁的要求如下:

AIX 6L installations All AIX 6L 6.1 installations Authorized Problem Analysis

Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX

fixes:

IZ41855

IZ51456

IZ52319

AIX 5L installations All AIX 5L 5.3 installations Authorized Problem Analysis

Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX

fixes:

IZ42940

IZ49516

IZ52331

验证:#/usr/sbin/instfix -i -k IZ41855

安装补丁:

由于6100-04不需要任何补丁,所以我们将系统升级到6100-04(但是安装grid的时候还是出现3个包未安装提示)

1、 从IBM官网上下载6100-04-00-0943

2、 将补丁文件上传至/tmp/tools下

3、 smit update_all

选择不提交,保存被覆盖的文件,可以回滚操作,接受许可协议

COMMIT software updates?                          No

SAVE replaced files?                              yes

ACCEPT new license agreements?                    Yes

升级完后查看:

# oslevel -s

6100-04-01-0944

2.3 配置IP地址

根据前面的规划先配置要两台机器的IP地址,就是ibmdb1、ibmdb1-priv和ibmdb2、ibmdb2-priv这四个IP地址。

同样配置几块网卡的IP地址,基中服务地址要配置网关,网关地址为:192.168.17.254。

2.4 修改/etc/hosts文件

修改每个节点上的/etc/hosts文件。

127.0.0.1           loopback localhost      # loopback (lo0) name/address

192.168.17.237    ibmdb1

192.168.17.236     ibmdb1-vip

10.10.10.237    ibmdb1-priv

192.168.17.239    ibmdb2

192.168.17.238    ibmdb2-vip

10.10.10.239   ibmdb2-priv

192.168.17.229 scan

注意:如果你的环境里不具备DNS服务器,那么SCAN地址解析可以通过/etc/hosts或GNS来实现,这需要在你的所有数据库主机的host文件里添加一个SCAN地址,并且这个地址的解析名不要超过16个字符,超过的话,oracle只会解析前16个字符。本例中我们通过/etc/hosts来解析scan。

2.5 文件系统准备

创建/u01文件系统

2.5.1 方法1:使用命令创建

1、mkdir /u01

2、建立一个lv   mklv –t jfs2 –y u01lv rootvg 200   #200个pps,可视需要而定

3、建立一个文件系统  crfs –v jfs2 -d /dev/u01lv -m /u01

4、mount文件系统  mount /u01

5、使用smit chfs,修改/u01启动自动mount。

创建/oracle文件系统

1、mkdir /oracle

2、建立一个lv   mklv –t jfs2 –y u01lv rootvg 200   #200个pps,可视需要而定

3、建立一个文件系统  crfs –v jfs2 -d /dev/u01lv -m /u01

4、mount文件系统  mount /u01

5、使用smit chfs,修改/u01启动自动mount。

2.5.2 方法2:使用smit创建

Smit mklv:

Smit fs:

 

在上图中,由于我们已经建议好了LV,所以选择如图。

在上图中,我们设置挂载点、是否自启动。

完成后,mount /u01

挂载/u01文件系统。

2.6 调整系统参数

2.6.1 打开异步IO

AIX5.3中,在安装grid软件前执行rootpre.sh会自动打开异步IO服务,在AIX6.1中默认异步IO服务是打开的。推荐的aio_maxreqs值为 64k (65536),检查方法如下:

AIX 6.1

# ioo -o aio_maxreqs

aio_maxreqs = 65536

AIX 5.3

# lsattr -El aio0 -a maxreqs

maxreqs 65536 Maximum number of REQUESTS True

查看当前启动了多少异步IO进程的方法:

# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver

调整aio_maxservers和aio_minservers为合适的值

原则:

1、 调整maxservers的值为10倍的磁盘数量,但是不要超赤80

2、 在高i/o的时间周期监控AIO的性能情况,如果所有的AIO服务进程都已经启动,那么增大maxservers的值。但是,过多的AIO进程也会增加系统的负载

3、 监控AIO服务进程的使用情况:

# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver

4、 调整参数

Ioo –po aio_maxservers=80 / ioo –po aio_minservers=40

2.6.2 调整虚拟内存管理

Oracle推存使用vmo命令去调优虚拟内存管理,参数推荐如下:

命令如下:

vmo -p -o minperm%=3

vmo -p -o maxperm%=90

vmo -p -o maxclient%=90

vmo -p -o lru_file_repage=0

vmo -p -o strict_maxclient=1

vmo -p -o strict_maxperm=0

You must restart the system for these changes to take effect.

2.6.3 调整maxuproc(系统最大进程数)和ncargs(系统块大小)参数

# chdev -l sys0 -a maxuproc=16384

sys0 changed

也可以使用:smitty chgsys修改“Maximum number of PROCESSES allowed per user”

修改完成后查看:

# lsattr -El sys0 -a maxuproc

maxuproc 16384 Maximum number of PROCESSES allowed per user True

# chdev -l sys0 -a ncargs=256

sys0 changed

2.6.4 调整SHELL限制

1. 在 /etc/security/limits文件中增加如下行:

default:

        fsize = -1

        core = 2097151

        cpu = -1

        data = -1

        rss = -1

        stack = -1

        nofiles = -1

2.6.5 确认网络配置参数

用# /usr/sbin/no -a | more来查看网络参数是否满足下面的要求

   PARAMETER RECOMMENDED VALUE

ipqmaxlen 512

rfc1323 1

sb_max 1500000

tcp_recvspace 65536

tcp_sendspace 65536

udp_recvspace 1351680 这个值应该是udp_sendspace的10倍,但是必须小于sb_max

udp_sendspace 135168  这个值至少应该是4K+(db_block_size*db_multiblock_read_count)的大小

        修改命令

no -r -o ipqmaxlen=521

no -p -o rfc1323=1

no -p -o sb_max=1500000

no -p -o tcp_recvspace=65536

no -p -o tcp_sendspace=65536

no -p -o udp_recvspace=1351680 

no -p -o udp_sendspace=13516

在修改前需要先查看系统设置的兼容性:

# lsattr -El sys0 -a pre520tune

1、输出如:

pre520tune disable Pre-520 tuning compatibility mode True

说明是不兼容方式,这样就可以用上面的方式调整:

2、如果是compatibility模式,则:

# /usr/sbin/no -o parameter_name=value

并且编辑文件/etc/rc.net加入下面内容:

if [ -f /usr/sbin/no ] ; then

/usr/sbin/no -o udp_sendspace=65536

/usr/sbin/no -o udp_recvspace=655360

/usr/sbin/no -o tcp_sendspace=65536

/usr/sbin/no -o tcp_recvspace=65536

/usr/sbin/no -o rfc1323=1

/usr/sbin/no -o sb_max=2*655360

/usr/sbin/no -o ipqmaxlen=512

fi

2.7 创建用户、组

2.7.1 要求

本次安装我们就规划了一个组,但是规划两个用户,一个用于管理ASM实例,另一个用于管理DB实例。

创建一个组:

dba

创建二个用户:

grid:主要用与安装grid、ASM,管理ASM实例,grid用户主组为dba,属组为:dba。

oracle:要用与安装Clusterware,管理db实例,oracle用户主组为dba,属组为:dba。

2.7.2 创建命令:

# mkgroup -'A' id='1000' adms='root' dba

# mkuser id='1000' pgrp='dba' groups='dba' home='/home/grid' grid

# mkuser id='1100' pgrp='dba' groups='dba' home='/home/oracle' oracle

!注意保持双机用户与组的ID的一致。

2.7.3 修改用户属性

2.7.3.1 grid用户

1、在两台主机上要保证grid用户具有以下能力:

CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE

查看grid用户能力:

#lsuser -a capabilities grid

增加grid用户能力:

# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

2、设置grid用户密码:

#passwd grid

3、在两台主机上最消grid用户shell限制

可以通过smit chuser去修改grid用户限制,或直接修改/etc/security/limits 文件,具体参数如下:

default:

fsize = -1

core = 2097151

cpu = -1

data = -1

rss = -1

stack = -1

nofiles = -1

2.7.3.2 oracle用户

1、在两台主机上要保证oracle用户具有以下能力:

CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE

查看oracle用户能力:

# lsuser -a capabilities oracle

增加oracle用户能力:

#chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

2、设置oracle用户密码:

#passwd oracle

3、在两台主机上最消oracle用户shell限制

可以通过smit chuser去修改oracle用户限制,或直接修改/etc/security/limits 文件,具体参数如下:

default:

fsize = -1

core = 2097151

cpu = -1

data = -1

rss = -1

stack = -1

nofiles = -1

2.7.3.3 root用户

在两台主机上最消root用户shell限制,因为CRS进程(crsd)需要以root用户运行。

可以通过smit chuser去修改root用户限制,或直接修改/etc/security/limits 文件,具体参数如下:

default:

fsize = -1

core = 2097151

cpu = -1

data = -1

rss = -1

stack = -1

nofiles = -1

2.8 用户环境变量设置

2.8.1 grid用户

在两台服务器的的grid用户的.profile最后,增加如下内容:

umask 022

export ORACLE_BASE=/u01/app/grid                #需手工创建

export ORACLE_HOME=/u01/app/11.2/grid             #需手工创建

export ORACLE_SID=+ASM1      #节点2是+ASM2

export NLS_LANG=AMERICAN_AMERICA.UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS10=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

export PS1='hostname':'$PWD'"$

2.8.2 oracle用户

在两台服务器的的oracle用户的.profile最后,增加如下内容:

umask 022

export ORACLE_BASE=/u01/app/oracle                      #需手工创建

export ORACLE_HOME=$ORACLE_BASE/product/11.2

export ORACLE_SID=ytdb1

export ORACLE_UNQNAME=testdb

export NLS_LANG=AMERICAN_AMERICA.UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS10=$ORACLE_HOME/nls/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

export PS1='hostname':'$PWD'"$"

2.9 用户shell限制

更改root,grid,oracle用户的shell限制,要求如下:

fsize = -1

core = -1

cpu = -1

data = -1

rss = -1

stack = -1

nofiles = -1

更改命令:smit chuser

2.10 创建安装目录并修改权限

mkdir -p /u01/app/grid                #grid用户的ORACLE_BASE

mkdir -p /u01/app/11.2/grid           #grid用户的ORACLE_HOME

chown -R grid:dba /u01

mkdir -p /u01/app/oracle               #oracle用户的ORACLE_BASE

chown -R oracle:dba /u01/app/oracle

chmod -R 755 /u01/

注意:如果grid与orcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。

2.11 SSH信任关系设置(可选)

SSH信任关系也可在grid安装时选择自动配置。

注意:Oracle11g R2 grid在AIX上自动配置ssh时会报错,因为Oracle调用的命令路径和AIX系统上命令实际路径不符,可以修改oracle安装程序的sshsetup.sh脚本,或按照oracle调用路径添加程序软连接,具体路径安装过程中Oracle会提示。

2.11.1 首先在两台机器上安装好OpenSSH软件;

具体安装方法本处不详述,需要下载openssh、openssl,安装时需先安装openssl,然后再安装openssh。

也可以通过AIX系统光盘,执行smitty install,选择所有ssh包安装。

安装完毕后可以检查:

# lslpp –l | grep ssh

2.11.2 然后在grid安装中选择自动配置SSH双机信任关系

2.11.2.1 方法1

 修改/etc/ssh/sshd_config

将:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

前面的注释去掉。

 利用命令:ssh-keygen生成key

全部选择默认的就可以 , 生成的private key和public Key会保存在 ~/.ssh目录下 . 

注: 为了后面的访问方便, passphrase一行密码一般设置为空.

 将2台机器的public key互相传给对方 

可以有好几种方法: ftp , rcp , scp都可以 .这里我们通过FTP将两个节点的~/.ssh下的id_rsa、id_rsa.pub两个文件分别拷下来传至对方。由于同名,分别将其更改为id_rsa239、id_rsa239.pub、id_rsa237、id_rsa237.pub,为了区分,后面加上其IP标识。

 建立authorized_keys文件

由于上面修改了sshd_config文件 , 其中一行为

AuthorizedKeysFile      .ssh/authorized_keys

为认证读取文件的位置 .

我们采取默认的方式 , 在~/.ssh下touch一个authorized_keys文件. 

touch authorized_keys

将传输过来的对方主机的pub key内容 ,追加到authorized_keys文件上,

Node1(192.168.17.237):

bash-3.00# cat id_rsa239.pub > authorized_keys

node2(192.168.17.239):

# cat id_rsa237.pub > authorized_keys

测试:

ssh 192.168.17.237

ssh 192.168.17.239

第一次登录会出现提示,输入yes后以后就不会了

2.11.2.2 方法2

以下两个节点都执行:

#su – grid

$mkdir –p ~/.ssh

$chmod 700 ~/.ssh

$/usr/bin/ssh-keygen -t rsa

提示输入密码时,保持为空,直接回车即可。

以下只在节点1上执行:

$ touch ~/.ssh/authorized_keys

$ ssh ibmdb1 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

$ ssh ibmdb2 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

$ scp ~/.ssh/authorized_keys ibmdb2:.ssh/authorized_keys

以下只在节点2上执行:

$ chmod 600 ~/.ssh/authorized_keys

配置完成后按方法1中测试方法进行测试。

2.12 配置磁盘设备

2.12.1 设置磁盘属性

该步骤若不做,在grid安装完成建立ASM时,第二个节点会找不到硬盘,同时加入不了群集。

检测:

lsattr -El hdisk2 | grep reserve_

查看一个即可

设置保持策略:

如果上面查看的结果是reserve_policy

chdev -l hdisk2 -a reserve_policy=no_reserve

chdev -l hdisk3 -a reserve_policy=no_reserve

chdev -l hdisk4 -a reserve_policy=no_reserve

chdev -l hdisk5 -a reserve_policy=no_reserve

chdev -l hdisk6 -a reserve_policy=no_reserve

如果上面查看的结果是reserve_lock

chdev -l hdisk2 -a reserve_lock=no

.。。


2.12.2 修改用于数据库存储的PV的属主

chown grid:dba /dev/rhdisk2

chown grid:dba /dev/rhdisk3

chown grid:dba /dev/rhdisk4

chown grid:dba /dev/rhdisk5

chown grid:dba /dev/rhdisk6

2.12.3 修改用于数据库存储的PV的权限

chmod 777 /dev/rhdisk2

chmod 777 /dev/rhdisk3

chmod 777 /dev/rhdisk4

chmod 777 /dev/rhdisk5

chmod 777 /dev/rhdisk6

如果出现两边盘符不一致,可使用软连接实现两边盘符的对应关系一致,如:

Ln –s /dev/rhdisk2 /ShareDisk/grid_lun1

..

Ln –s /dev/rhdisk6 /ShareDisk/data_asm1

2.12.4 清除PVID

查看LUN,如果已经有了PVID的话,需要进行清除。

chdev -l hdisk2 -a pv=clear

重复同样的操作,清除2-6所有LUN的PVID

2.13 配置NTP服务(可选)

Oracle 11g R2提供Cluster Time Synchronization Service(CTSS)集群时间同步服务,在没有NTP服务时,该功能可以保证所有RAC节点的时间保持一致。ASM可以作为统一的存储把Oracle Cluster Registry(OCR)和Voting disks统一安装在ASM磁盘上,不再需要单独安装集群文件系统了,11g第二版也不再支持裸设备了(之前可以把集群件安装到裸设备上)。还有一个功能SCAN(Single Client Access Name)即单客户端访问名称而且该功能包括了Failover故障自动切换功能,在访问集群是只写一个SCAN名称就可以了,不需要象以前要把所有节点的VIP写在应用程序的配置文件里面了,这样就大大方便了客户端程序对RAC系统的访问,但该功能需要DNS服务器的支持。SCAN配置也可以采用hosts文件作解析。

如果系统配置了NTP服务,CTSS服务会处于观察者模式,配置NTP具体步骤可参考AIX服务配置。


3 安装Grid

3.1 Grid安装前检查

切换到grid用户并执行安装前检查,进入grid安装目录:

$./runcluvfy.sh stage -pre crsinst -n ibmdb1,ibmdb2 -fixup -verbose

检查失败项并进行相应的调整。

安装提示过程中发现几个失败:

1、 swap需要4G以上。

2、 需要oinstall组

3、 有几个系统补丁未打

3.2 执行rootpre.sh

1、以root身份登录在所有节点执行:slibclean

2、以root身份登录在所有节点执行grid软件下的:rootpre.sh

3.3 安装grid

使用xmanager登录,

$ export DISPLAY=192.168.18.12:0.0    #安装终端IP

在上传的grid安装文件目录下,键入./runInstaller开始安装:

 在这个界面下选择合适的安装类型,选择typical,将遇到更少的选择,并且在后续Oracle可以生成一个fixup脚本叫你执行,然后自动调整你没有按要求调整的系统参数,如果选择advanced,那么你将遇到更多的选择,并且所有环境变量要按要求事先准备,否则会报错,在这里我们选择advanced选项:

Next:

在上图选择产品语言时加上中文件语句,否则在使用EM时如果你的IE优先使用中文的话会出乱码的:

注:在上图的SCAN name中,如果有DNS,则填写DNS中的scan name,如果没有配置DNS,则填写在/etc/hosts中定义的scan名字(本例中的抓图为第一次安装时图,当时建立了DNS服务器,第二次安装时就使用了/etc/hosts中的scan名字)。

在配置网络增强界面时,规划好的集群名、SCAN名,SCAN端口,不勾选Configure GNS(GNS需要DHCP服务器配合,本次部署无DHCP服务器):

本例中我们使用的是/etc/hosts解析,所以直接填写scan,即可。

若是有DNS解析,这里填上在DNS服务器中建立的SCAN.IBM.COM的名称。

Next:

配置集群中的节点信息:

1、配置集群中的节点信息,

2、选择  SSH connectivity选项,输入grid用户的密码,然后点setup选项,oracle会自动配置ssh互信:

在进行grid 的SSH配置时出过两个报错:

1、 提示在ibmdb1上未找到/usr/local/bin/ssh-keygen,这个文件本身就不在这里,原因前面曾经提到,寻找路径与实际路径不符。既然提示要在这里找,建一个这个路径,然后将ssk-keygen拷贝至这里。

2、 提示ibmdb2没有/bin/bash,检查发现ibmdb2果然没有这个,将ibmdb1的拷贝过来。

bash-3.00# scp /bin/bash ibmdb2:/bin/

这里如果DNS没有配置好,会报scan vip出错。

指定网络接口,public和private.

这里选择ASM存储:

创建ASM磁盘组OCRVOTE,用于放置OCR、VOTE文件:

磁盘冗余类型选择:Normal,提示最少需要3块,这里我们选择disk3、5、6三块。

Next:

设置一致的密码,这里我们设置为:oracle。密码不要忘记,在建立RAC集群数据库时还需要。

会提示密码过于简单,不用理会。Next:

上图指定特权操作系统组:Next

上图指定oracle base和software install目录,按我们的规划要求进行调整:

Oracle Base:/u01/grid

Software Location:/u01/app

安装不通过,将software location改为/u01/db后可以继续,/u01/db的属主是oracle:dba,不解

创建临时目录inventory:

预安装检查,如下:

检查结果:

Swap空间不足,以及有几个补丁未打。

检查发现ibmdb2忘了增加swap,添加至3G。

其余补丁暂时未打,

其中第四个提示在ibmdb1上有0级别的用户不止root一个,检查发现在ibmdb1上有人建立了一个dylan的0级用户,在/etc/passwd中将其禁用后重新检查,此问题不在。

尝试忽略其它Failed继续安装。

点击:Finish 开始安装:

安装时间较长,达数十分钟。

在两个节点上分别按提示的顺序执行oraInstRoot.sh和root.sh,注意一定要按提示的顺序执行。若是在node1上安装,则执行顺序:

Node1:

#/../orainstRoot.sh

Node2:

/../orainstRoot.sh

Node1:

/../root.sh

Node2:

/../root.sh

完成后点击OK:

又有一个报错,忽略:

完装完成后点击:close。

删除grid:

若安装出错,需要删除重新安装时,可以通过deinstall进行干净卸载。

3.4 Clusterware安装校验

查看集群启动了哪些服务,以grid用户执行crs_stat –t –v 命令:

如果看到启动的许多相应的服务,则显示正常。

Ibmdb1:

# ./crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora.DATA.dg    ora....up.type ONLINE    ONLINE    ibmdb1      

ora....N1.lsnr ora....er.type ONLINE    ONLINE    ibmdb1      

ora.asm        ora.asm.type   ONLINE    ONLINE    ibmdb1      

ora.eons       ora.eons.type  ONLINE    ONLINE    ibmdb1      

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora....SM1.asm application    ONLINE    ONLINE    ibmdb1      

ora.ibmdb1.gsd application    OFFLINE   OFFLINE               

ora.ibmdb1.ons application    ONLINE    ONLINE    ibmdb1      

ora.ibmdb1.vip ora....t1.type ONLINE    ONLINE    ibmdb1      

ora....SM2.asm application    ONLINE    ONLINE    ibmdb2      

ora.ibmdb2.gsd application    OFFLINE   OFFLINE               

ora.ibmdb2.ons application    ONLINE    ONLINE    ibmdb2      

ora.ibmdb2.vip ora....t1.type ONLINE    ONLINE    ibmdb2      

ora....network ora....rk.type ONLINE    ONLINE    ibmdb1      

ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE               

ora.ons        ora.ons.type   ONLINE    ONLINE    ibmdb1      

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    ibmdb1      

#

Ibmdb2:

# ./crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora.DATA.dg    ora....up.type ONLINE    ONLINE    ibmdb1      

ora....N1.lsnr ora....er.type ONLINE    ONLINE    ibmdb1      

ora.asm        ora.asm.type   ONLINE    ONLINE    ibmdb1      

ora.eons       ora.eons.type  ONLINE    ONLINE    ibmdb1      

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora....SM1.asm application    ONLINE    ONLINE    ibmdb1      

ora.ibmdb1.gsd application    OFFLINE   OFFLINE               

ora.ibmdb1.ons application    ONLINE    ONLINE    ibmdb1      

ora.ibmdb1.vip ora....t1.type ONLINE    ONLINE    ibmdb1      

ora....SM2.asm application    ONLINE    ONLINE    ibmdb2      

ora.ibmdb2.gsd application    OFFLINE   OFFLINE               

ora.ibmdb2.ons application    ONLINE    ONLINE    ibmdb2      

ora.ibmdb2.vip ora....t1.type ONLINE    ONLINE    ibmdb2      

ora....network ora....rk.type ONLINE    ONLINE    ibmdb1      

ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE               

ora.ons        ora.ons.type   ONLINE    ONLINE    ibmdb1      

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    ibmdb1      

#


4 安装Database

这里只安装数据库软件,之后再用dbca命令建立集群数据库。安装完database软件后,还要建立ASM磁盘组。

使用oracle用户通过xmanager登录进行安装。

选择不接收更新,Next:

选择只安装数据库软件,Next:

选择real application cluster database installlation,然后选中所有的节点,Next:

在上图中,需要进行oracle用户的ssh信任配置,如果在前面没有配置好,可以在这里进行配置。Test一下是否正常,Next:

选择语言,添加Simplitied Chinese,Next:

选择数据库版本:Enterprise Edition,Next:

选择安装目录,Next:

如果环境变量设置正确,上面会自动填充,否则的话需要手工调整,这里的调整要和oracle用户的环境变量保持一致,Next:

注:这里原定使用的/u01/db用来进行grid程序的安装目录了,所以这里只有调整,但是/u01/db安装完grid后,目录权限自动变成了root:dba,不知道有没有什么影响。

由于我们这里只建了一个dba组,所以,Next:

开始执行安装前检查,

有几个报错,由于crs安装完成后有报错,现在尝试忽略继续安装。

Next,开始进行安装:

此安装过程较为耗时。

安装进度完成后,提示需要运行相关脚本,按要求的顺序执行,正确执行完毕后点击:OK

关闭窗口,完成database的安装。


5 创建ASM磁盘组

在建库前需要先创建存储数据文件的ASM磁盘组。以grid用户通过xmanager登录,执行asmca命令:

$asmca

切换到Disk Group界面,点击Create:

按我们的规划,选择rhdisk2、rhdisk4组成ASMORACLE磁盘组。

完成后如图:

其中DATA磁盘组是我们安装grid是建立的给OCR和VOTEDISK使用的,ASMORACLE是准备用来安装数据库的。


6 DBCA创建数据库

使用oracle用户,通过xmanager登录运行dbca来建立RAC集群数据库。建库时可以先不配置企业管理器(Enterprise Manager),等建库完成后,执行脚本配置EM。原因是在安装过程中配置EM导致建库时间很长,如果RAC节点的主机性能不好,可能导致安装程序的界面停止响应。本次安装就是因为选择了配置Enterprise Manager,结果从早上11点一直安装到18点才结束。

$export DISPLAY=192.168.18.12:0.0

$dbca

当然选择建立RAC数据库,Next:

选择自定议,Next:

输入我们oracle环境变量中配置的Databse Name,然后选中所有节点,Next:

默认选择EM:

Next:

所有用户配置一个密码:oracle 然后Next:

选择刚才建立的ASMORACLE磁盘组:

指定ASMSNMP密码,暂时不知道有何用,配置密码:oracle,点击OK:

配置闪回,默认选择OCR的ASM磁盘组,勾选启用归档,Next:

进入数据库初始化参数配置:

Memory:

Block Size:

字符集:

Connection Mode:

Next:

Next:

Finish

生成建库脚本。

开始一个较为漫长的建库过程。


7 安装完成后

7.1 备份root.sh

官方建议在安装完成后要备份root.sh脚本文件。因为如果在oracle home目录中又安装其它oracle的产品,安装时OUI会升级已存在的root.sh文件。如果需要root.sh内的原始信息,就可以在备份中找到。

$ cd $ORACLE_HOME

$ cp root.sh root.sh.bak

7.2 重新编译全部PL/SQL modules

官方建议在建立或升级数据库后执行utlrp.sql脚本。这个脚本重新编译全部为不可用状态的PL/SQL module,包括包(packages)、存储过程(procedures)、类型(types)。这是一个可选操作,但oracle官方建议在安装后立即执行该脚本。

以oracle用户执行以下命令:

$ sqlplus “/as sysdba”

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

7.3 备份spfile文件

$ sqlplus / as sysdba

SQL> create pfile=’/home/oracle/initorcl1.ora’ from spfile=’+OCRVOTE/orcl/spfileorcl.ora’;

7.4 RAC集群系统维护命令

$ srvctl add –h  #给集群添加对象,比较重要的如:service, srvpool等等

$ srvctl remove –h  #删除集群的对象

$ srvctl modify –h  #修改集群的对象

$ srvctl config –h   #查看集群内对象的配置信息

$ srvctl status –h   #查看集群内对象的状态信息

$ srvctl relocate –h    #把集群的对象重定位到其它实例节点,如oc4j,gns只在一个实例节点上有效,使用该命令可以把对象转移到其它实例节点

$ srvctl enable –h   #把集群内已经存在的对象置于可用状态

$ srvctl disable –h   #把集群内已经存在的对象置于不可用状态

$ srvctl start –h   #启动集群内已经存在的对象

$ srvctl stop –h   #停止集群内已经存在的对象

$ srvctl config database   #查看全部安装集群数据库名称

$ srvctl config database –d ytdb #查看指定的集群数据库的配置信息,以环境变量中为准

$ srvctl config nodeapps –a –g –s –e   #显示节点应用程序的配置

7.5 启动和关闭集群系统命令

7.5.1 启动集群件和集群数据库

集群系统默认是自动启动的,手工启动命令如下:

# cd /u01/app/11.2/grid/bin    #视安装路径而定,可查看grid环境变量

# ./crsctl start cluster

也可以以grid用户执行以下命令(不过11.2版本中不建议使用):

$ su - grid

$ crs_start –all

启动集群数据库

$ su – oracle

$ srvctl start database –d ytdb   #启动全部实例

$ srvctl start instance –d ytdb –n ibmnode1  #节点1上启动数据库实例

$ srvctl start instance –d ytdb –n ibmnode2  #节点2上启动数据库实例

7.5.2 关闭RAC集群数据库和集群件

先关闭集群数据库

$ su – oracle 

$ srvctl stop database –d ytdb

再关闭集群件(root用户)

# cd /u01/app/11.2/grid/bin    #视安装路径而定,可查看grid环境变量

# ./crsctl stop cluster


------------------------


安装完成后分别登录两个节点查看监听:

hostname:/u01/oracle/db/product/11.2/network/admin$lsnrctl status


LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.1.0 - Production on 12-NOV-2010 18:09:14


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.1.0 - Production

Start Date                12-NOV-2010 11:20:55

Uptime                    0 days 6 hr. 48 min. 19 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      ON

Listener Parameter File   /u01/db/network/admin/listener.ora

Listener Log File         /u01/grid/diag/tnslsnr/ibmdb1/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.17.237)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.17.236)(PORT=1521)))

Services Summary...

Service "+ASM" has 1 instance(s).

  Instance "+ASM1", status READY, has 1 handler(s) for this service...

Service "ytdb" has 1 instance(s).

  Instance "ytdb1", status READY, has 1 handler(s) for this service...

Service "ytdbXDB" has 1 instance(s).

  Instance "ytdb1", status READY, has 1 handler(s) for this service...

The command completed successfully


查看tnsnames.ora

YTDB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = scan)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ytdb)

    )

)


社区会员分享,点击阅读原文可下载原文档


长按二维码关注“AIX专家俱乐部”公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存